home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / cdriver.arc / DRIVER.H < prev    next >
Text File  |  1986-03-14  |  3KB  |  153 lines

  1. /*
  2.  *    driver.h ->    Device Driver Header File
  3.  */
  4.  
  5.  
  6. /*
  7.  *    Status Word Bits
  8.  */
  9.  
  10. #define    Error    0x8000
  11. #define    Busy    0x0100
  12. #define    Done    0x0080
  13.  
  14.  
  15. /*
  16.  *    Media Descriptor Byte Bits
  17.  */
  18.  
  19. #define    TwoSided    1
  20. #define    EightSector    2
  21. #define    Removable    4
  22.  
  23.  
  24. /*
  25.  *    Error Return Codes
  26.  */
  27.  
  28. #define    WriteProtect    0
  29. #define    UnknownUnit    1
  30. #define    DeviceNotReady    2
  31. #define    UnknownCommand    3
  32. #define    crcError    4
  33. #define    BadLength    5
  34. #define    SeekError    6
  35. #define    UnknownMedia    7
  36. #define    SectorNotFound    8
  37. #define    NoPaper        9
  38. #define    WriteFault    10
  39. #define    ReadFault    11
  40. #define    GeneralFailure    12
  41.  
  42.  
  43. /*
  44.  *    structures
  45.  */
  46.  
  47. typedef struct
  48.     {
  49.     char    Length;        /*  Request Header length    */
  50.     char    Unit;        /*  Unit Code            */
  51.     char    Command;    /*  Command Code        */
  52.     int    Status;        /*  Status            */
  53.     char    reserved[8];    /*  DOS Reserved Area        */
  54.     }
  55.     Request;
  56.  
  57. typedef struct
  58.     {
  59.     Request    InitReq;    /*  Request Header        */
  60.     char    nUnits;        /*  number of units        */
  61.     long    EndAddr;    /*  Ending Address        */
  62.     long    BPBarray;    /*  ptr to BPB array        */
  63.     }
  64.     InitParms;
  65.  
  66. typedef struct
  67.     {
  68.     Request    MediaReq;    /*  Request Header        */
  69.     char    MediaDesc;    /*  Media Descriptor        */
  70.     char    ReturnCode;    /*  Return Code            */
  71.     }
  72.     MediaParms;
  73.  
  74. typedef struct
  75.     {
  76.     Request    BPBReq;        /*  Request Header        */
  77.     char    MediaDesc;    /*  Media Descriptor        */
  78.     long    Transfer;    /*  Transfer Address        */
  79.     long    BPBTable;    /*  ptr to BPB table        */
  80.     }
  81.     BPBParms;
  82.  
  83. typedef struct
  84.     {
  85.     Request    InOutReq;    /*  Request Header        */
  86.     char    MediaDesc;    /*  Media Descriptor        */
  87.     long    Transfer;    /*  Transfer Address        */
  88.     int    Count;        /*  Byte/Sector Count        */
  89.     int    Start;        /*  Starting Sector Number    */
  90.     }
  91.     InOutParms;
  92.  
  93. typedef struct
  94.     {
  95.     Request    ndInputReq;    /*  Request Header        */
  96.     char    Byte;        /*  Byte Read From Device    */
  97.     }
  98.     ndInputParms;
  99.  
  100. typedef struct
  101.     {
  102.     Request    StatusReq;    /*  Request Header        */
  103.     }
  104.     StatusParms;
  105.  
  106. typedef struct
  107.     {
  108.     Request    FlushReq;    /*  Request Header        */
  109.     }
  110.     FlushParms;
  111.  
  112. typedef struct
  113.     {
  114.     int    BytesPerSector;
  115.     char    SecsPerAllocUnit;
  116.     int    ReservedSectors;
  117.     char    FATCount;
  118.     int    RootDirEntries;
  119.     int    SectorsPerLogical;
  120.     char    MediaDesc;
  121.     int    SecsPerFAT;
  122.     }
  123.     BPB;
  124.  
  125. typedef struct
  126.     {
  127.     char    BootJump[3];
  128.     char    Name[8];
  129.     BPB    BootBPB;
  130.     int    SecsPerTrack;
  131.     int    HeadCount;
  132.     int    HiddenCount;
  133.     }
  134.     BootSector;
  135.  
  136.  
  137. /*
  138.  *    externals
  139.  */
  140.  
  141. extern Request    ReqHdr;        /*  current Request Header    */
  142.  
  143. extern char    FarPeek();    /*  return value from long ptr    */
  144. extern int    FarPoke();    /*  store value at long ptr    */
  145.  
  146. extern long    EndAddr();    /*  returns Ending Address    */
  147. extern long    Dword();    /*  converts ptr to DWORD    */
  148.  
  149.  
  150. /*
  151.  *    END of driver.h
  152.  */
  153.